package modelo;

import java.util.Date;

import mapper.AdmPersistenciaJugada;

public abstract class Jugada {

	private static long ultimoID = 0;

	private long id;
	private int idTragamonedas;
	private int idPremio;
	private Date fecha;
	private float credito;
	private float precioJugada;
	private float creditoAcumulado;
	
	public Jugada(int idTragamonedas, int idPremio, Date fecha, float credito, float precioJugada, float creditoAcumulado) {
		this.setId(getProximoID());
		this.setIdTragamonedas(idTragamonedas);
		this.setIdPremio(idPremio);
		this.setFecha(fecha);
		this.setCredito(credito);
		this.setPrecioJugada(precioJugada);
		this.setCreditoAcumulado(creditoAcumulado);		
	}
	public Jugada(long id, int idTragamonedas, int idPremio, Date fecha, float credito, float precioJugada, float creditoAcumulado) {
		this.setId(id);
		this.setIdTragamonedas(idTragamonedas);
		this.setIdPremio(idPremio);
		this.setFecha(fecha);
		this.setCredito(credito);
		this.setPrecioJugada(precioJugada);
		this.setCreditoAcumulado(creditoAcumulado);		
	}

	public static long getUltimoID() {
		return ultimoID;
	}
	public static long getProximoID() {
		return ++ultimoID;
	}
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public int getIdTragamonedas() {
		return idTragamonedas;
	}
	public void setIdTragamonedas(int idTragamonedas) {
		this.idTragamonedas = idTragamonedas;
	}
	public int getIdPremio() {
		return idPremio;
	}
	public void setIdPremio(int idPremio) {
		this.idPremio = idPremio;
	}
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	public float getCredito() {
		return credito;
	}
	public void setCredito(float credito) {
		this.credito = credito;
	}
	public float getPrecioJugada() {
		return precioJugada;
	}
	public void setPrecioJugada(float precioJugada) {
		this.precioJugada = precioJugada;
	}
	public float getCreditoAcumulado() {
		return creditoAcumulado;
	}
	public void setCreditoAcumulado(float creditoAcumulado) {
		this.creditoAcumulado = creditoAcumulado;
	}
	
	public void insertarDatos(){
		AdmPersistenciaJugada.getInstancia().insertar(this);
	}
	public void actualizarDatos(){
		AdmPersistenciaJugada.getInstancia().actualizar(this);
	}
	public void eliminarDatos(){
		AdmPersistenciaJugada.getInstancia().borrar(this);	
	}
	public abstract Boolean tienePremio();
	
}
